//package cn.getech.data.development.sink.jdbc.append
//
//import java.sql.{Connection, DriverManager, PreparedStatement}
//
//import cn.getech.data.development.sink.jdbc.config.CustomTableConfig
//import org.apache.flink.api.java.io.jdbc.JDBCUtils
//import org.apache.flink.configuration.Configuration
//import org.apache.flink.streaming.api.functions.sink.RichSinkFunction
//import org.apache.flink.types.Row
//
//
//class FlinkCustomJDBCSink(conf: CustomTableConfig) extends RichSinkFunction[Row] {
//
//  private var conn: Connection = null
//  private var stmt: PreparedStatement = null
//
//  override def open(parameters: Configuration): Unit = {
//    val config = conf.getConfig()
//    Class.forName(config.driver._2)
//    conn = DriverManager.getConnection(config.url._2, config.username._2, config.password._2)
//    println(conn)
//    stmt = conn.prepareStatement(conf.sqlParser)
//    println(conf.sqlParser)
//  }
//
//  override def invoke(value: Row): Unit = {
//    println(value)
//    val ints = conf.param_class_type2Ints
//    for (i <- 0 until conf.getParamSize) {
//      JDBCUtils.setField(stmt, ints(i), value.getField(i), i)
//    }
//    // todo 未走通
//    //    batchCount += 1
//    //    if (batchCount >= conf.getBatchInterval) {
//    //      println(s"executeBatch=${batchCount}======")
//    //      stmt.executeBatch
//    //      batchCount = 0
//    //    } else stmt.addBatch()
//    stmt.execute()
//  }
//
//  override def close(): Unit = {
//    if (stmt != null || !stmt.isClosed) {
//      stmt.close
//    }
//    if (conn != null || !conn.isClosed) {
//      conn.close
//    }
//  }
//
//}
